Page({
  data: {
    items: [],
    showPreview: false,
    previewImageUrl: '',
    filterStatus: 'unrented', // 初始筛选状态为未租物品
    filteredItems: []
  },
  onLoad: function () {
    this.queryItems();
  },
  // 查询已发布物品
  queryItems: async function () {
    try {
      const userInfo = wx.getStorageSync('userinfo');
      if (!userInfo || !userInfo.nickName) {
        console.error('未获取到用户信息');
        wx.showToast({ title: '未获取到用户信息，请先登录', icon: 'none' });
        return;
      }
      const db = wx.cloud.database();
      const res = await db.collection('loudong').where({
        nickName: userInfo.nickName
      }).get();
      console.log('查询到的数据:', res.data);

      // 格式化时间
      const itemsWithTime = res.data.map(item => {
        const createTime = item.createTime;
        let publishTime;

        if (!createTime) {
          publishTime = '时间未知';
        } else if (typeof createTime === 'string' || typeof createTime === 'number') {
          // 处理字符串或时间戳类型的日期
          try {
            publishTime = this.formatTime(new Date(createTime));
          } catch (e) {
            console.error('日期格式化失败:', createTime, e);
            publishTime = '格式错误';
          }
        } else if (createTime.constructor.name === 'Date') {
          // 处理原生 Date 对象
          publishTime = this.formatTime(createTime);
        } else if (createTime.hasOwnProperty('$date')) {
          // 处理云开发数据库返回的时间格式（{ $date: timestamp }）
          publishTime = this.formatTime(new Date(createTime.$date));
        } else {
          console.error('未知的日期类型:', createTime);
          publishTime = '格式错误';
        }

        return { ...item, publishTime };
      });

      // 打印格式化后的数据
      console.log('格式化后的数据:', itemsWithTime);

      this.setData({
        items: itemsWithTime
      });
      // 初始筛选
      this.filterItems({ currentTarget: { dataset: { status: this.data.filterStatus } } });
    } catch (err) {
      console.error('查询失败:', err);
      wx.showToast({ title: '查询失败，请稍后再试', icon: 'none' });
    }
  },
  // 删除物品
  deleteItem: async function (e) {
    const id = e.currentTarget.dataset.id;
    try {
      const db = wx.cloud.database();
      await db.collection('loudong').doc(id).remove();
      wx.showToast({ title: '删除成功', icon: 'success' });
      this.queryItems(); // 重新查询数据
    } catch (err) {
      console.error('删除失败:', err);
      wx.showToast({ title: '删除失败，请稍后再试', icon: 'none' });
    }
  },
  // 图片加载失败事件
  imageLoadError: function (e) {
    console.error('图片加载失败:', e);
  },
  // 时间格式化函数
  formatTime: function (date) {
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    const hour = date.getHours();
    const minute = date.getMinutes();

    return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')} ${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;
  },
  // 显示图片预览模态框
  showPreviewImage: function (e) {
    const url = e.currentTarget.dataset.url;
    this.setData({
      showPreview: true,
      previewImageUrl: url
    });
  },
  // 隐藏图片预览模态框
  hidePreviewImage: function () {
    this.setData({
      showPreview: false,
      previewImageUrl: ''
    });
  },
  // 筛选物品
  filterItems: function (e) {
    const status = e.currentTarget.dataset.status;
    this.setData({
      filterStatus: status
    });
    if (status === 'unrented') {
      this.setData({
        filteredItems: this.data.items.filter(item => !item.isRented)
      });
    } else {
      this.setData({
        filteredItems: this.data.items.filter(item => item.isRented)
      });
    }
  }
})